Skip to content

{AKS} az aks create/update: Add breaking change announcement#31196

Closed
FumingZhang wants to merge 3 commits intoAzure:devfrom
FumingZhang:fuming/aks-version-0404
Closed

{AKS} az aks create/update: Add breaking change announcement#31196
FumingZhang wants to merge 3 commits intoAzure:devfrom
FumingZhang:fuming/aks-version-0404

Conversation

@FumingZhang
Copy link
Copy Markdown
Member

Related command

  • az aks create
  • az aks update

Description

{AKS} az aks create/update: Add breaking change announcement for #29429

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature


This checklist is used to make sure that common guidelines for a pull request are followed.

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd bot commented Apr 4, 2025

❌AzureCLI-FullTest
️✔️acr
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
❌acs
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
❌latest
❌3.12
Type Test Case Error Message Line
Failed test_set_up_auto_scaler_profile self = <azure.cli.command_modules.acs.tests.latest.test_managed_cluster_decorator.AKSManagedClusterCreateDecoratorTestCase testMethod=test_set_up_auto_scaler_profile>

    def test_set_up_auto_scaler_profile(self):
        # default value in aks_create
        dec_1 = AKSManagedClusterCreateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": None,
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
    
        mc_1 = self.models.ManagedCluster(location="test_location")
        dec_1.context.attach_mc(mc_1)
        # fail on passing the wrong mc object
        with self.assertRaises(CLIInternalError):
            dec_1.set_up_auto_scaler_profile(None)
        dec_mc_1 = dec_1.set_up_auto_scaler_profile(mc_1)
        ground_truth_mc_1 = self.models.ManagedCluster(
            location="test_location",
        )
        self.assertEqual(dec_mc_1, ground_truth_mc_1)
    
        # custom value
        dec_2 = AKSManagedClusterCreateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": {"expander": "random"},
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_2 = self.models.ManagedCluster(location="test_location")
        dec_2.context.attach_mc(mc_2)
>       dec_mc_2 = dec_2.set_up_auto_scaler_profile(mc_2)

src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:7217: 
                                        
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6287: in set_up_auto_scaler_profile
    print_conditional_breaking_change(
                                        

cli_ctx = <azure.cli.command_modules.acs.tests.latest.mocks.MockCLI object at 0x7f60c168b200>
tag = 'aks_create_cluster_autoscaler_profile'

    def print_conditional_breaking_change(cli_ctx, tag, *, custom_logger=None, command_name=None):
        """
        Print a breaking change warning message manually.
        :param cli_ctx: By default, retrieve the command name from cli_ctx.
        :param tag: Use the tag to distinguish different warning messages to be printed in the same command.
        Please note, all breaking change items with the same tag from the parent command group will also be printed.
        :param custom_logger: Use a custom logger to replace the logger in azure.cli.core.breaking_change.
        :param command_name: Specify the command name if not pass in the cli_ctx
        """
>       command = cli_ctx.invocation.commands_loader.command_name if cli_ctx else command_name
E       AttributeError: 'NoneType' object has no attribute 'commands_loader'

src/azure-cli-core/azure/cli/core/breaking_change.py:647: AttributeError
azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:7183
Failed test_update_auto_scaler_profile self = <azure.cli.command_modules.acs.tests.latest.test_managed_cluster_decorator.AKSManagedClusterUpdateDecoratorTestCase testMethod=test_update_auto_scaler_profile>

    def test_update_auto_scaler_profile(self):
        dec_1 = AKSManagedClusterUpdateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": None,
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_1 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        dec_1.context.attach_mc(mc_1)
        dec_mc_1 = dec_1.update_auto_scaler_profile(mc_1)
        ground_truth_mc_1 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        self.assertEqual(dec_mc_1, ground_truth_mc_1)
    
        dec_2 = AKSManagedClusterUpdateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": {},
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_2 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        dec_2.context.attach_mc(mc_2)
>       dec_mc_2 = dec_2.update_auto_scaler_profile(mc_2)

src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:8407: 
                                        
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:7087: in update_auto_scaler_profile
    print_conditional_breaking_change(
                                        

cli_ctx = <azure.cli.command_modules.acs.tests.latest.mocks.MockCLI object at 0x7f60c16e2450>
tag = 'aks_update_cluster_autoscaler_profile'

    def print_conditional_breaking_change(cli_ctx, tag, *, custom_logger=None, command_name=None):
        """
        Print a breaking change warning message manually.
        :param cli_ctx: By default, retrieve the command name from cli_ctx.
        :param tag: Use the tag to distinguish different warning messages to be printed in the same command.
        Please note, all breaking change items with the same tag from the parent command group will also be printed.
        :param custom_logger: Use a custom logger to replace the logger in azure.cli.core.breaking_change.
        :param command_name: Specify the command name if not pass in the cli_ctx
        """
>       command = cli_ctx.invocation.commands_loader.command_name if cli_ctx else command_name
E       AttributeError: 'NoneType' object has no attribute 'commands_loader'

src/azure-cli-core/azure/cli/core/breaking_change.py:647: AttributeError
azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:8366
❌3.9
Type Test Case Error Message Line
Failed test_set_up_auto_scaler_profile self = <azure.cli.command_modules.acs.tests.latest.test_managed_cluster_decorator.AKSManagedClusterCreateDecoratorTestCase testMethod=test_set_up_auto_scaler_profile>

    def test_set_up_auto_scaler_profile(self):
        # default value in aks_create
        dec_1 = AKSManagedClusterCreateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": None,
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
    
        mc_1 = self.models.ManagedCluster(location="test_location")
        dec_1.context.attach_mc(mc_1)
        # fail on passing the wrong mc object
        with self.assertRaises(CLIInternalError):
            dec_1.set_up_auto_scaler_profile(None)
        dec_mc_1 = dec_1.set_up_auto_scaler_profile(mc_1)
        ground_truth_mc_1 = self.models.ManagedCluster(
            location="test_location",
        )
        self.assertEqual(dec_mc_1, ground_truth_mc_1)
    
        # custom value
        dec_2 = AKSManagedClusterCreateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": {"expander": "random"},
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_2 = self.models.ManagedCluster(location="test_location")
        dec_2.context.attach_mc(mc_2)
>       dec_mc_2 = dec_2.set_up_auto_scaler_profile(mc_2)

src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:7217: 
                                        
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:6287: in set_up_auto_scaler_profile
    print_conditional_breaking_change(
                                        

cli_ctx = <azure.cli.command_modules.acs.tests.latest.mocks.MockCLI object at 0x7fa857c8fee0>
tag = 'aks_create_cluster_autoscaler_profile'

    def print_conditional_breaking_change(cli_ctx, tag, *, custom_logger=None, command_name=None):
        """
        Print a breaking change warning message manually.
        :param cli_ctx: By default, retrieve the command name from cli_ctx.
        :param tag: Use the tag to distinguish different warning messages to be printed in the same command.
        Please note, all breaking change items with the same tag from the parent command group will also be printed.
        :param custom_logger: Use a custom logger to replace the logger in azure.cli.core.breaking_change.
        :param command_name: Specify the command name if not pass in the cli_ctx
        """
>       command = cli_ctx.invocation.commands_loader.command_name if cli_ctx else command_name
E       AttributeError: 'NoneType' object has no attribute 'commands_loader'

src/azure-cli-core/azure/cli/core/breaking_change.py:647: AttributeError
azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:7183
Failed test_update_auto_scaler_profile self = <azure.cli.command_modules.acs.tests.latest.test_managed_cluster_decorator.AKSManagedClusterUpdateDecoratorTestCase testMethod=test_update_auto_scaler_profile>

    def test_update_auto_scaler_profile(self):
        dec_1 = AKSManagedClusterUpdateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": None,
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_1 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        dec_1.context.attach_mc(mc_1)
        dec_mc_1 = dec_1.update_auto_scaler_profile(mc_1)
        ground_truth_mc_1 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        self.assertEqual(dec_mc_1, ground_truth_mc_1)
    
        dec_2 = AKSManagedClusterUpdateDecorator(
            self.cmd,
            self.client,
            {
                "cluster_autoscaler_profile": {},
            },
            ResourceType.MGMT_CONTAINERSERVICE,
        )
        mc_2 = self.models.ManagedCluster(
            location="test_location",
            auto_scaler_profile=self.models.ManagedClusterPropertiesAutoScalerProfile(
                scan_interval="10s",
            ),
        )
        dec_2.context.attach_mc(mc_2)
>       dec_mc_2 = dec_2.update_auto_scaler_profile(mc_2)

src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:8407: 
                                        
src/azure-cli/azure/cli/command_modules/acs/managed_cluster_decorator.py:7087: in update_auto_scaler_profile
    print_conditional_breaking_change(
                                        

cli_ctx = <azure.cli.command_modules.acs.tests.latest.mocks.MockCLI object at 0x7fa857cb3400>
tag = 'aks_update_cluster_autoscaler_profile'

    def print_conditional_breaking_change(cli_ctx, tag, *, custom_logger=None, command_name=None):
        """
        Print a breaking change warning message manually.
        :param cli_ctx: By default, retrieve the command name from cli_ctx.
        :param tag: Use the tag to distinguish different warning messages to be printed in the same command.
        Please note, all breaking change items with the same tag from the parent command group will also be printed.
        :param custom_logger: Use a custom logger to replace the logger in azure.cli.core.breaking_change.
        :param command_name: Specify the command name if not pass in the cli_ctx
        """
>       command = cli_ctx.invocation.commands_loader.command_name if cli_ctx else command_name
E       AttributeError: 'NoneType' object has no attribute 'commands_loader'

src/azure-cli-core/azure/cli/core/breaking_change.py:647: AttributeError
azure/cli/command_modules/acs/tests/latest/test_managed_cluster_decorator.py:8366
️✔️advisor
️✔️latest
️✔️3.12
️✔️3.9
️✔️ams
️✔️latest
️✔️3.12
️✔️3.9
️✔️apim
️✔️latest
️✔️3.12
️✔️3.9
️✔️appconfig
️✔️latest
️✔️3.12
️✔️3.9
️✔️appservice
️✔️latest
️✔️3.12
️✔️3.9
️✔️aro
️✔️latest
️✔️3.12
️✔️3.9
️✔️backup
️✔️latest
️✔️3.12
️✔️3.9
️✔️batch
️✔️latest
️✔️3.12
️✔️3.9
️✔️batchai
️✔️latest
️✔️3.12
️✔️3.9
️✔️billing
️✔️latest
️✔️3.12
️✔️3.9
️✔️botservice
️✔️latest
️✔️3.12
️✔️3.9
️✔️cdn
️✔️latest
️✔️3.12
️✔️3.9
️✔️cloud
️✔️latest
️✔️3.12
️✔️3.9
️✔️cognitiveservices
️✔️latest
️✔️3.12
️✔️3.9
️✔️compute_recommender
️✔️latest
️✔️3.12
️✔️3.9
️✔️computefleet
️✔️latest
️✔️3.12
️✔️3.9
️✔️config
️✔️latest
️✔️3.12
️✔️3.9
️✔️configure
️✔️latest
️✔️3.12
️✔️3.9
️✔️consumption
️✔️latest
️✔️3.12
️✔️3.9
️✔️container
️✔️latest
️✔️3.12
️✔️3.9
️✔️containerapp
️✔️latest
️✔️3.12
️✔️3.9
️✔️core
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️cosmosdb
️✔️latest
️✔️3.12
️✔️3.9
️✔️databoxedge
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️dls
️✔️latest
️✔️3.12
️✔️3.9
️✔️dms
️✔️latest
️✔️3.12
️✔️3.9
️✔️eventgrid
️✔️latest
️✔️3.12
️✔️3.9
️✔️eventhubs
️✔️latest
️✔️3.12
️✔️3.9
️✔️feedback
️✔️latest
️✔️3.12
️✔️3.9
️✔️find
️✔️latest
️✔️3.12
️✔️3.9
️✔️hdinsight
️✔️latest
️✔️3.12
️✔️3.9
️✔️identity
️✔️latest
️✔️3.12
️✔️3.9
️✔️iot
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️keyvault
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️lab
️✔️latest
️✔️3.12
️✔️3.9
️✔️managedservices
️✔️latest
️✔️3.12
️✔️3.9
️✔️maps
️✔️latest
️✔️3.12
️✔️3.9
️✔️marketplaceordering
️✔️latest
️✔️3.12
️✔️3.9
️✔️monitor
️✔️latest
️✔️3.12
️✔️3.9
️✔️mysql
️✔️latest
️✔️3.12
️✔️3.9
️✔️netappfiles
️✔️latest
️✔️3.12
️✔️3.9
️✔️network
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️policyinsights
️✔️latest
️✔️3.12
️✔️3.9
️✔️privatedns
️✔️latest
️✔️3.12
️✔️3.9
️✔️profile
️✔️latest
️✔️3.12
️✔️3.9
️✔️rdbms
️✔️latest
️✔️3.12
️✔️3.9
️✔️redis
️✔️latest
️✔️3.12
️✔️3.9
️✔️relay
️✔️latest
️✔️3.12
️✔️3.9
️✔️resource
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️role
️✔️latest
️✔️3.12
️✔️3.9
️✔️search
️✔️latest
️✔️3.12
️✔️3.9
️✔️security
️✔️latest
️✔️3.12
️✔️3.9
️✔️servicebus
️✔️latest
️✔️3.12
️✔️3.9
️✔️serviceconnector
️✔️latest
️✔️3.12
️✔️3.9
️✔️servicefabric
️✔️latest
️✔️3.12
️✔️3.9
️✔️signalr
️✔️latest
️✔️3.12
️✔️3.9
️✔️sql
️✔️latest
️✔️3.12
️✔️3.9
️✔️sqlvm
️✔️latest
️✔️3.12
️✔️3.9
️✔️storage
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️synapse
️✔️latest
️✔️3.12
️✔️3.9
️✔️telemetry
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9
️✔️util
️✔️latest
️✔️3.12
️✔️3.9
️✔️vm
️✔️2018-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2019-03-01-hybrid
️✔️3.12
️✔️3.9
️✔️2020-09-01-hybrid
️✔️3.12
️✔️3.9
️✔️latest
️✔️3.12
️✔️3.9

@azure-client-tools-bot-prd
Copy link
Copy Markdown

azure-client-tools-bot-prd bot commented Apr 4, 2025

️✔️AzureCLI-BreakingChangeTest
️✔️Non Breaking Changes

@yonzhan
Copy link
Copy Markdown
Collaborator

yonzhan commented Apr 4, 2025

Thank you for your contribution! We will review the pull request and get back to you soon.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 4, 2025

The git hooks are available for azure-cli and azure-cli-extensions repos. They could help you run required checks before creating the PR.

Please sync the latest code with latest dev branch (for azure-cli) or main branch (for azure-cli-extensions).
After that please run the following commands to enable git hooks:

pip install azdev --upgrade
azdev setup -c <your azure-cli repo path> -r <your azure-cli-extensions repo path>

@mbifeld
Copy link
Copy Markdown
Member

mbifeld commented Apr 14, 2025

Will be breaking change for Ignite

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AKS az aks/acs/openshift Auto-Assign Auto assign by bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants